/***********************************************************************
 * Module:  SaisirOriginator.java
 * Author:  Dian
 * Purpose: Defines the Class SaisirOriginator
 ***********************************************************************/

package originator;

import memento.Memento;
import memento.SaisirMemento;
import caretaker.Enregistreur;

import command.Command;
import command.SaisirTexte;

public class SaisirOriginator implements Originator{

	private Enregistreur enregistreur;
	private Command saisir;
	private String etat;

	public SaisirOriginator(Enregistreur enreg,Command cmd) {
		super();
		this.enregistreur = enreg;
		this.saisir = cmd;
	}

	/**
	 * 
	 */
	public void execute(){
		((SaisirTexte) saisir).execute();
		etat = ((SaisirTexte)this.saisir).getTexte();
		Memento m = new SaisirMemento(this, etat);
		System.out.println("### ETAT   "+etat+"  memento"+m);
		enregistreur.ajouterMemento(m);
	}

	@Override
	public void setMemento(Memento m) {
		((SaisirTexte) saisir).setTexte(((SaisirMemento) m).getEtat());
		((SaisirTexte) saisir).executeMem();
	}
}